package com.esun.api.interfaces;

import com.esun.api.request.DatabaseLogRequestDto;

import java.util.List;

import com.esun.common.response.RestResponse;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;


/**
 * (DatabaseLog)Api声明接口
 *
 * @author baron.wubo
 * @date 2021-10-13 10:02:00
 */

public interface IDatabaseLogApi {

    /**
     * 条件分页查询
     * @param
     * @return
     */
    @PostMapping("get/page")
    RestResponse getDatabaseLogPostByPage(@RequestBody DatabaseLogRequestDto requestDto );
    /**
     *查询总共错误多少条
     **/
    @GetMapping("get/page/total")
    RestResponse getLogErrorTotal();


    /**
     * 批量新增(DatabaseLog)
     *
     * @param requestDtoList (DatabaseLog)请求实体列表
     * @return 新增结果
     */
    @PostMapping("list/add")
    RestResponse addDatabaseLog(@RequestBody(required = false) List<DatabaseLogRequestDto> requestDtoList);

    /**
     * 批量修改(DatabaseLog)信息
     *
     * @param requestDtoList 薪资请求实体列表
     * @return 修改结果
     */
    @PutMapping("list/update")
    RestResponse updateDatabaseLog(@RequestBody(required = false) List<DatabaseLogRequestDto> requestDtoList);

    /**
     * 批量删除(DatabaseLog)信息
     *
     * @param requestDtoList 薪资请求实体列表
     * @return 删除结果
     */
    @DeleteMapping("list/delete")
    RestResponse deleteDatabaseLog(@RequestBody(required = false) List<DatabaseLogRequestDto> requestDtoList);

    /**
     * 通过Excel文件导入(DatabaseLog)信息
     * 导入操作为插入或更新数据
     *
     * @param file 上传的文件
     * @return 结果封装类
     */
    @PostMapping("import")
    RestResponse importDatabaseLog(MultipartFile file);

    /**
     * 根据条件查询数据，然后通过Excel表格导出
     * 导出文件将会在本地服务器保存一份
     *
     * @param requestDto 用户请求实体
     */
    @PostMapping("export")
    void exportDatabaseLog(@RequestBody DatabaseLogRequestDto requestDto);

    /**
     * 下载导入模板
     * 请求该接口将自动通过输出流下载导出文件
     *
     * @param path 模板路径
     */
    @GetMapping("download/template")
    void downloadTemplate(@RequestParam(value = "path", required = false, defaultValue = "D:/template/导入模板.xlsx") String path);
}
